package com.gt.web.srv.domain;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;

import java.util.Date;

/**
 * 参赛者报名信息DTO
 * 对应数据库表：ss_participants
 */
@TableName("ss_participants")
@Data
public class SsParticipants {
    /**
     * 参赛者报名主键ID
     */
    @TableId(value = "ss_participants_id", type = IdType.AUTO)
    private Long ssParticipantsId;

    /**
     * 活动ID
     */
    @TableField("activity_id")
    private Long activityId;

    /**
     * 小程序用户ID
     */
    @TableField("user_id")
    private Long userId;

    /**
     * 证件类型，默认为居民身份证
     */
    @TableField(value = "document_type", insertStrategy = FieldStrategy.NOT_NULL)
    private String documentType = "居民身份证";

    /**
     * 证件号码
     */
    @TableField("document_number")
    private String documentNumber;

    /**
     * 国家/地区
     */
    @TableField("country")
    private String country;

    /**
     * 姓名
     */
    @TableField("name")
    private String name;

    /**
     * 性别
     */
    @TableField("gender")
    private String gender;

    /**
     * 出生年月
     */
    @TableField("birth_date")
    private Date birthDate;

    /**
     * 手机号码
     */
    @TableField("phone")
    private String phone;

    /**
     * 紧急联系人姓名
     */
    @TableField("emergency_contact")
    private String emergencyContact;

    /**
     * 紧急联系人电话
     */
    @TableField("emergency_phone")
    private String emergencyPhone;

    /**
     * 与紧急联系人关系
     */
    @TableField("contact_relation")
    private String contactRelation;

    /**
     * 血型
     */
    @TableField("blood_type")
    private String bloodType;

    /**
     * 服装尺码
     */
    @TableField("clothing_size")
    private String clothingSize;

    /**
     * 详细地址
     */
    @TableField("address")
    private String address;

    /**
     * 用户签名
     */
    @TableField("signature")
    private String signature;

    /**
     * 报名费用,单位分
     */
    @TableField(value = "registration_fee", insertStrategy = FieldStrategy.NOT_NULL)
    private Integer registrationFee = 0;

    /**
     * 状态: 1(待审核)/2(已通过)/3(已付款)/4(已抽选)/5(已通知)/6(排队中)/7(已取消)/8(审核不通过)
     */
    @TableField(value = "status", insertStrategy = FieldStrategy.NOT_NULL)
    private Integer status = 1;

    /**
     * 创建者
     */
    @TableField("create_by")
    private String createBy;

    /**
     * 创建时间
     */
    @TableField(value = "create_time", fill = FieldFill.INSERT)
    private Date createTime;

    /**
     * 更新者
     */
    @TableField("update_by")
    private String updateBy;

    /**
     * 更新时间
     */
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;


}